home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue53 / Multicas / Example1 / UnitFormMain.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-10-14  |  1.4 KB  |  67 lines

  1. unit UnitFormMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   UnitMulticaster, StdCtrls;
  8.  
  9. type
  10.   TFormMain = class(TForm)
  11.     Edit1: TEdit;
  12.     Button1: TButton;
  13.     Label1: TLabel;
  14.     procedure FormCreate(Sender: TObject);
  15.     procedure FormDestroy(Sender: TObject);
  16.     procedure Edit1Change(Sender: TObject);
  17.     procedure Button1Click(Sender: TObject);
  18.   private
  19.     FMulticaster: TEventMulticaster;
  20.     FUserName: string;
  21.     procedure SetUserName(const aUserName: string);
  22.   public
  23.     public property UserName: string read FUserName write SetUserName;
  24.     property Multicaster: TEventMulticaster read FMulticaster;
  25.   end;
  26.     TEventUserNameChange = class(TEvent);
  27.  
  28. var
  29.   FormMain: TFormMain;
  30.  
  31. implementation
  32.  
  33. {$R *.DFM}
  34.  
  35. uses UnitFormListener;
  36.  
  37. procedure TFormMain.FormCreate(Sender: TObject);
  38. begin
  39.   FMulticaster := TEventMulticaster.Create;
  40. end;
  41.  
  42. procedure TFormMain.FormDestroy(Sender: TObject);
  43. begin
  44.     FMulticaster.Free;
  45. end;
  46.  
  47. procedure TFormMain.Edit1Change(Sender: TObject);
  48. begin
  49.   UserName := Edit1.Text;
  50. end;
  51.  
  52. procedure TFormMain.SetUserName(const aUserName: string);
  53. begin
  54.   if (aUserName <> UserName) then
  55.   begin
  56.       FUserName := aUserName;
  57.       Multicaster.Broadcast(TEventUserNameChange.Create(Self))
  58.   end;
  59. end;
  60.  
  61. procedure TFormMain.Button1Click(Sender: TObject);
  62. begin
  63.   TFormListener.Create(Self).Show;
  64. end;
  65.  
  66. end.
  67.